package cn.ch.org.mapper;

import cn.ch.basic.mapper.BaseMapper;
import cn.ch.org.domain.Employee;
import cn.ch.system.domain.Menu;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

@Mapper
public interface EmployeeMapper extends BaseMapper<Employee> {

    /**
     * 根据用账号查询员工
     * @param username 账号
     * @return
     */
    Employee loadByUsername(String username);



    /**
     * 根据用户的id，来查找到用户拥有的权限
     * @param id
     */
   List<String> loadlogininfo2Permission(Long id); //redis存储的时候使用的

    /**
     * 根据logininfo_id 来查询对应的employee（用户）
     * @param id
     * @return
     */
    Employee loadEmployeeByLogininfoId(Long id);

    /**
     * 根据logininfo_id 查询对应的用户的权限菜单。
     * 注意：
     *      1.这里需要返回对应的父子结构的数据，使用嵌套查询
     *      2.嵌套查询的层级不能太深，最多只能有两个层级
     * @param id
     * @return
     */
    List<Menu> loadMenusByLogininfoId(Long id);

    /**
     * 查询某个店铺的接单人
     * @param shopId
     * @return
     */
    List<Employee> loadByShopId(Long shopId);

}
